// Exam.h: interface for the CExam class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_EXAM_H__E1BF417D_07AE_49E9_8751_26F580389F61__INCLUDED_)
#define AFX_EXAM_H__E1BF417D_07AE_49E9_8751_26F580389F61__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <GL/gl.h>
#include "graphics/Texture.h"
#include <list>
#include "e:\course work\cse472\project\labexam prac\graphics\texture.h"

class CExam  
{
public:
	CExam();
	virtual ~CExam();

	void Draw();

    void Lift(double p_lift) {m_lift = p_lift;};
	void Move(double p_move) {m_move = p_move;};
private:
    void Hole(double p_x, double p_y, double p_z, double p_diameter);

    int m_section;
    double m_lift;
	double m_move;
public:
	void DrawSegment(double x1 , double y1 , 
		double nx1 , double ny1 , 
		double x2 , double y2 , 
		double nx2 , double ny2, 
		double t1=0., double t2=1.,
		double zoom_x=1,double zoom_y=1,
		int m_mapmode=0);
	void CExam::DrawSegmentNsides(double x1, double y1, double nx1, double ny1, 
                        double x2, double y2, double nx2, double ny2, int N=32,
                        double t1=0, double t2=1);
	void CExam::DrawSegmentNsidesHole(double x1, double y1, double nx1, double ny1, 
                        double x2, double y2, double nx2, double ny2, int N=32,
                        double t1=0, double t2=1, int m_mapmode=0);
	void DrawCup(void);
private:
	CTexture m_cokecan;
public:
	void DrawCokecan(void);
private:
	CTexture m_metal;
public:
	void DrawPolish(void);
	void DrawKodak(void);
	void DrawHanoi(void);
	void DrawDuplo(void);
	CTexture m_polishtop;
	CTexture m_polishlabel;
private:
	int m_mapmode;
	CTexture m_kodakbox;
	CTexture m_hanoi;
public:
	void DrawTest(double topedge_x=1.,double topedge_y=1.,double topofarc_y=.5,double offset=0.);
	double* SurfaceNormal(double* vt0, double* vt1, double* vt2);
	void DrawQuad(double* v1, double* v2, double* v3, double* v4=NULL,double* t1=NULL,double* t2=NULL,double* t3=NULL,double* t4=NULL);
};

#endif // !defined(AFX_EXAM_H__E1BF417D_07AE_49E9_8751_26F580389F61__INCLUDED_)
